package com.fancy.social.service;

import cn.hutool.db.PageResult;
import com.fancy.imasclient.dto.FollowInfoDTO;
import com.fancy.imasclient.dto.FollowRequestDTO;
import com.fancy.social.dto.FollowDTO;

import java.util.Map;

public interface FollowService {
    void follow(Long userId, FollowDTO followDTO);
    void unfollow(Long userId, FollowDTO followDTO);

    /**
     * 获取用户关注统计信息
     */
    Map<String, Object> getFollowStats(Long userId, Long currentUserId);

    /**
     * 关注用户/歌手
     */
    void followTarget(Long userId, FollowRequestDTO dto);

    /**
     * 取消关注用户/歌手
     */
    void unfollowTarget(Long userId, FollowRequestDTO dto);

    /**
     * 获取关注列表
     */
    PageResult<FollowInfoDTO> getFollowing(Long userId, int page, int size);

    /**
     * 获取粉丝列表
     */
    PageResult<FollowInfoDTO> getFollowers(Long userId, int page, int size);
}
